package com.dhcc.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dhcc.base.BaseService;
import com.dhcc.entity.SysDept;
import com.dhcc.response.SysDeptListTree;

import java.util.List;

/**
 * 部门表接口层
 * @ProjectName Dhcc-Cloud
 * @PackageName com.dhcc.service
 * @Title SysDeptService
 * @Date 2024/12/5 下午3:50
 * @Author LiuGuoting
 */
public interface SysDeptService extends BaseService<SysDept> {

    /**
     * 自定义分页
     *
     * @param page 分页参数
     * @param sysDept 部门信息实体对象
     * @return IPage<SysUser>
     */
    IPage<SysDeptListTree> selectDeptPage(IPage<SysDept> page, SysDept sysDept);

    /**
     * 自定义查询部门树
     * @return List<SysDeptVO>
     */
    List<SysDeptListTree> listDeptTree();

    /**
     * 新增部门
     * @param sysDept 部门信息实体对象
     * @return Boolean
     */
    Boolean addDept(SysDept sysDept);

    /**
     * 更新部门
     * @param sysDept 部门信息实体对象
     * @return Boolean
     */
    Boolean updateDept(SysDept sysDept);

    /**
     * 查询部门详情（基本信息）
     * @param id 部门id
     * @return SysDept 部门信息实体对象
     */
    SysDept getDeptById(String id);

    /**
     * 启用禁用部门
     * @param id 部门id
     * @param status 部门状态
     * @return Boolean
     */
    Boolean changeDeptStatus(String id, int status);

    /**
     * 批量启用禁用部门
     * @param ids 部门id集合
     * @param status 部门状态
     * @return Boolean
     */
    Boolean changeDeptStatuss(List<String> ids, int status);
}
